#ifndef TOKENBOOLEXP
#define TOKENBOOLEXP
#include "Token.h"
#include <string>
class TokenBool: public Token
{
protected:
	bool* result;
public:
	TokenBool(const std::string& ToParse = ""): Token(ToParse), result(NULL) {}
	~TokenBool() {delete result;}
	bool getResult(bool force = false) {if (force || result == NULL) run(); return *result;}
	void run(bool enabled = true);
};
class TokenBoolCmp: public TokenBool
{
public:
	TokenBoolCmp(const std::string& ToParse = ""): TokenBool(ToParse) {}
	void run(bool enabled = true);
};
class TokenBoolExp: public TokenBool
{
public:
	TokenBoolExp(const std::string& ToParse = ""): TokenBool(ToParse) {}
	void run(bool enabled = true);
};
#endif

